2019年1月22日
目次
DNS(Domain Name System)とはipアドレスとドメインを紐付ける機能をもつサーバーです。
インターネットで「google.com」とかでサイトにアクセスすることができるのは、
google.comに紐づいているサーバーに名前解決してアクセスができているからです。
一般的にはapacheやnginxでwebサーバーを構築することは多いと思いますが、
今回はdnsキャッシュサーバーをCentOS7上で作成したいと思います。
DNSサーバーがない場合は自身のPCのホストファイルを変更して自分のPCに明示します。
ちなみに歴史的経緯によりもともと名前解決はhostsで行っていました。
windowsの場合は下記のディレクトリにhostsファイルがあります。
”’
C:\Windows\System32\drivers\etc\hosts
”’
メモ帳を開いて下記のように記入します。
”’
192.168.32.123 DNSサンプル
”’
ちなにもこのhostsによる名前解決はDNSサーバーによる名前解決手法よりも優先されます。
DNSキャッシュサーバーの1つであるunboundの設定を行います。
BINDキャッシュサーバーにはbindもありますが、DNSコンテンツサーバーとしての役割もあります。
unboundはDNSキャッシュサーバー専用のサービスとして機能し、BINDに比べて軽量に動作します。
unboundをインストールします。
”’
yum install unbound
”’
初期状態ではunboundは外部からのアクセスができないようになっています。
そのため外部からアクセスできるように設定ファイルを変更します。
”’
vim /etc/unbound/local.d/test.conf
”’
/etc/unbound/local.d/ 配下に任意の.confファイルを作成します。
ファイルには下記のように記述します。
”’
interface 192.168.32.XX
interface 127.0.0.1
access-control: 192.168.32.0/24 allow
access-control: 127.0.0.1 allow
”’
上記で記載した interface で受け付けるinterfaceを指定します。
その上で受け付けるipを指定しています。
localhostからのアクセスによる名前解決も行うために127.0.0.1でlocalhostも追加しています。
以上を行った後に設定ファイルに問題がないか確認を行います。
”’
unbound-checkconf
”’
もしもDNS SECによる通信の制限を外す場合は、
/etc/unbound/unbound.conf内にconfファイルを作成し下記のようにroot-hintsを修正します。
”’
module-config “iterator”
”’
上記のroot-hintsで設定した内容を読み込ませます。
”’
unbound-control reload
”’
unboundを起動します。
”’
systemctl start unbound
systemctl is-active unbound
”’
最後に下記のコマンドにて、DNSサーバーのアドレスを指定して名前解決ができるか確認を行います。
”’
nslookup www.test.com 192.168.32.XX
”’
上記によりアドレスが表示されれば問題ありません。